import { useAuth } from '@/stores/useAuth';

export async function authFetch(input: RequestInfo, init: RequestInit = {}) {
  const { accessToken, refreshToken, clear, setTokens } = useAuth();

  // 自动从 sessionStorage 中恢复（你的 useAuth 已经 initFromStorage）
  const token = accessToken.value;
  if (!token) {
    throw new Error('没有 access token，用户未登录');
  }

  const headers = new Headers(init.headers || {});
  headers.set('Authorization', `Bearer ${token}`);
  headers.set('Accept', 'application/json');

  const resp = await fetch(input, {
    ...init,
    headers,
    credentials: init.credentials ?? 'include', // 视后端是否用 cookie/session
  });

  if (resp.status === 401) {
    // 可扩展：尝试用 refresh_token 刷新（如果你实现了刷新逻辑）
    // 目前简单清掉状态，强制重新登录
    clear();
    throw new Error('Unauthorized, token 失效，需要重新登录');
  }

  return resp;
}
